"""

@File:member_service.py
@Datetime:2022/11/6 22:42
@Author:wangt
@Desc:
"""
import json

from api.base_service import BaseService


class MemberService(BaseService):
    def __init__(self):
        super().__init__()  # 调用父类  __init__方法
        self.service_name = "MemberService"

    def find_by_telephone(self, tel):
        """
        根据手机号查询会员信息
        :param tel: 输入手机号参数，如："13800000000"
        :return: 返回字典，查询成功时元素为会员各字段内容，失败返回None
        """
        resp = self.dubbo_client.invoke(self.service_name, "findByTelephone", tel)
        if resp == "Failed":
            return None
        else:
            # json.loads()作用为将返回结果还原为字典或列表格式数据
            return json.loads(resp)

    def add(self, data):
        """
        功能：添加会员
        :param data:代表用户传入的数据，没有class 元素。手机号需要唯一
        格式如：{"id": 1055, "name": "杜甫", "phoneNumber": "13800000000"}
        :return:添加成功返回True，失败返回False
        """
        # 如果 class 已经存在，覆盖原有class值; 如果不存在 class，新增一组 元素到 字典中。
        data["class"] = "com.itheima.pojo.Member"
        resp = self.dubbo_client.invoke(self.service_name, "add", data)
        if resp == "null":
            return True
        else:
            return False

    def find_member_count_byMonths(self, month):
        """
        功能：根据日期统计会员数
        :param month: 日期列表，格式如：["2021-05"]
        :return: 返回列表，元素为对应月份的会员数，如：[1054]
        """
        resp = self.dubbo_client.invoke(self.service_name, "findMemberCountByMonths", month)
        return json.loads(resp)


if __name__ == '__main__':
    ms = MemberService()
    # 1.查询会员
    # resp = ms.find_by_telephone("13844551123")
    # print("查询会员响应结果：",resp,type(resp))
    # print("*"*66)
    # 2.根据月份统计会员数
    month = ["2022-05", "2022-13 "]
    resp = ms.find_member_count_byMonths(month)
    print(resp)
    # 3.添加会员
    # data = {"id": 91111, "name": "李太白", "phoneNumber": "13844551123"}
    # resp = ms.add(data)
    # print("添加会员响应结果：",resp,type(resp))
